home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 7 / Night Owl Shareware (NOPV7)(Night Owl Publisher Inc.)(1992).bin / 038a / bash1_12.arj / BASH1-12.TAR / bash-1.12 / examples / functions / fstty < prev    next >
Text File  |  1991-12-31  |  1KB  |  64 lines

  1. #
  2. # fstty
  3. #
  4. # A function that works as a front end for both stty and the `bind'
  5. # builtin, so the tty driver and readline see the same changes
  6. #
  7. # chet@ins.cwru.edu
  8. #
  9.  
  10. #
  11. # Convert between the stty ^H control character form and the readline \C-H
  12. # form
  13. #
  14. cvt()
  15. {
  16.     echo "$@" | cat -v | sed 's/\^/\\C-/'
  17. }
  18.  
  19. #
  20. # stty front-end.  Parses the argument list and creates two command strings,
  21. # one for stty, another for bind.
  22. #
  23. fstty()
  24. {
  25.     local    cmd="" bargs=""
  26.     local    e
  27.  
  28.     while [ $# -gt 0 ]
  29.     do
  30.         case "$1" in
  31.         -a)    cmd="$cmd everything"
  32.             ;;
  33.         erase)    shift;
  34.             e=$(cvt "$1")
  35.             cmd="$cmd erase $1"
  36.             bargs="$bargs '$e: backward-delete-char'"
  37.             ;;
  38.         kill)    shift
  39.             e=$(cvt "$1")
  40.             cmd="$cmd kill $1"
  41.             bargs="$bargs '$e: unix-line-discard'"
  42.             ;;
  43.         werase)    shift;
  44.             e=$(cvt "$1")
  45.             cmd="$cmd erase $1"
  46.             bargs="$bargs '$e: backward-kill-word'"
  47.             ;;
  48.         lnext)    shift;
  49.             e=$(cvt "$1")
  50.             cmd="$cmd erase $1"
  51.             bargs="$bargs '$e: quoted-insert'"
  52.             ;;
  53.         *)    cmd="$cmd $1"
  54.             ;;
  55.         esac
  56.         shift
  57.     done
  58.  
  59.     command stty $cmd
  60.     if [ -n "$bargs" ]; then
  61.         builtin bind $bargs
  62.     fi
  63. }
  64.